iT邦幫忙

2025 iThome 鐵人賽

DAY 27
0
Build on AWS

來都來了,那就做一個AWS從0到100的微服務AI小平台!系列 第 27

Day 27 認識 AWS CodePipeline—自動化交付的協調中樞

  • 分享至 

  • xImage
  •  

在現代軟體開發中,持續整合與持續交付(CI/CD)是核心實踐。AWS CodePipeline 作為一項完全託管的 CI/CD 服務,正是 AWS 實現自動化部署的中央協調器指揮中心。它透過建立視覺化的工作流程,確保每一次程式碼變更都能被可靠、快速地推送到最終用戶手中。

https://ithelp.ithome.com.tw/upload/images/20251011/20106094ci7KUi8Qcs.png

CodePipeline 的服務定位與核心價值

CodePipeline 的主要職責是自動化監控協調整個軟體發布流程。它不是實際編譯程式碼的工具,而是將不同的開發者工具串聯起來的骨架

  • 自動化工作流程:一旦程式碼有變更,CodePipeline 能夠自動觸發整個流程,無需人工干預。
  • 流程標準化:通過定義固定的管線結構,確保軟體發布過程一致且可重複。
  • 可視化監控:如圖片所示的主控台,提供了一個單一且清晰的介面,讓我們能即時追蹤每個階段的執行狀態和歷史記錄。

構成 CodePipeline 的三大要素

一個 CodePipeline 由層次分明的三個主要部分構成:

  1. 管線 (Pipeline):整個自動化流程的定義。
  2. 階段 (Stage):流程中的主要步驟,例如「來源」、「建構」、「測試」、「部署」。
  3. 動作 (Action):每個階段內執行的具體任務,例如「從 GitHub 獲取程式碼」(來源動作)或「使用 CodeBuild 編譯」(建構動作)。

搭配 GitHub 與 CodeBuild 的實作流程

我們的 CI/CD 管線將依賴 CodePipeline 來連接 GitHubCodeBuild,形成經典的持續整合流程:

  1. 來源階段 (Source Stage)
    • 動作:配置一個與 GitHub 儲存庫連結的來源動作。
    • 觸發機制:當開發人員將新的程式碼提交(Push)到 GitHub 的指定分支時,CodePipeline 會立即感知此變更,自動下載程式碼,並觸發管線執行。
  2. 建構階段 (Build Stage)
    • 動作:配置一個呼叫 AWS CodeBuild 專案的建構動作。
    • 任務執行:CodePipeline 將程式碼交付給 CodeBuild。CodeBuild 依據 buildspec.yml 執行編譯、單元測試等任務,並將產生的可部署檔案(成品)存儲在 S3 中。
  3. 成品傳遞 (Artifact Flow)
    • CodePipeline 的一個關鍵功能是管理成品(Artifacts)。在每個階段結束時,成功的輸出都會被打包並安全地傳遞給下一個階段作為輸入。例如,CodeBuild 階段的輸出成品(編譯後的應用程式)將自動成為部署階段的輸入。

透過 CodePipeline,我們實現了一個從程式碼提交、自動建構、測試到部署的完全自動化、端到端的工作流程,大幅提高了軟體發布的速度與可靠性。


上一篇
Day 26 SQS概念及應用場景
下一篇
Day 28 認識 AWS CodeBuild—程式碼建構
系列文
來都來了,那就做一個AWS從0到100的微服務AI小平台!30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言